Communications between clients and servers in a large network such as the Internet involve a number of steps and protocols. Establishing, maintaining and closing connections between servers require expenditure of network resources. Particularly where several steps are involved, there is likelihood for resources to be inefficiently used. For example, server resources may be reserved for a communication that is ultimately not successful. The reserved resources may not be returned or may be returned after some delay. Repeated occurrences of this can result in a server overload condition.
The problem outlined above can occur, for example, in an Internet communication using the Transmission Control Protocol (TCP) and the Hyptertext Transfer Protocol (HTTP) to make a connection between servers. TCP enables two servers in a network to establish a connection and exchange streams of data by sending data in the form of message units (also referred to as “packets”) and by guaranteeing that the message units are delivered in the same order in which the message units were sent. TCP is referred to as a connection-oriented protocol because a TCP connection is generally established and maintained until the message or messages to be exchanged by the application programs in servers at each end of a connection have been exchanged. HTTP is a protocol used by the World Wide Web (WWW). HTTP defines how messages are formatted and transmitted and includes commands for operating Web servers and browsers. HTTP is referred to as a stateless protocol because each command is executed independently, without knowledge of the commands that came before it. HTTP is also referred to as layered on top of TCP because an HTTP connection is established after the completion of a TCP connection in establishing a connection between servers.
The Open Systems Interconnection (OSI) network model, adopted by the International Organization of Standards (ISO), provides a common reference point for network development. The OSI provides a description for how messages are transmitted between any two points in a network.
Under the OSI model, the process of communication between two end points in a network is divided into seven layers, with each layer adding its own set of functions. Each communicating user or program is at a computer equipped with these seven layers of functions. Accordingly, in a message between users, there is a flow of data through each layer at one end down through the layers in that computer and, at the other end, when the message arrives, another flow of data up through the layers in the receiving computer and ultimately to the end user or program.
The seven layers include two groups. The upper four layers form a first group and are used whenever a message passes from or to a user. The lower three layers form a second group and are used when a message passes through a host computer. Messages intended for the host computer then pass to the upper layers. Messages destined for a second host are not passed up to the upper layers but are forwarded to another host. The seven layers are the physical layer, the data-link layer, the network layer, the transport layer, the session layer, the presentation layer, and the application layer. The physical layer, also referred to as “layer 1”, conveys a bit stream of the transmitted data through the network at the hardware level. The data-link layer, also referred to as “layer 2”, provides synchronization for the physical level and includes transmission protocol knowledge and management. The network layer, also referred to as “layer 3”, handles routing of data through the network. The transport layer, also referred to as “layer 4”, manages the end-to-end control of data transmission through the network and error-checking. The session layer, also referred to as “layer 5”, sets up, coordinates, and terminates communication between applications between points in the network. The presentation layer, also referred to as “layer 6”, is typically a part of an operating system, converts incoming and outgoing data from one presentation format to another. The application layer, also referred to as “layer 7”, identifies communication partners in a network communication and quality of service for the network communication, performs user authentication and identifies constraints on data syntax among other operations to enable applications to run. Under the OSI model, TCP is a transport layer protocol and HTTP is an application layer protocol.